#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
#include <time.h>
#include <string.h>
#include "03.h"

#define SIZE 10




void array1(){
	int array[SIZE];// 定义时，下标只能为常量 
	int i,j;
	int temp; // 用于交换数据的中间数据 
	
	srand(time(NULL)); // 通过当前的时间重置随机种子，让每次产生的随机数不同 
	// 1、产生随机数 
	for(i=0;i< SIZE;i++){
		array[i]= rand() % 900 + 100; // 产生100 - 999 之间的随机数 
	}
	// 2、显示数组 
	for(i=0;i< SIZE;i++){
		printf("%8d",array[i]);
	}
	// 3、排序
	for(i = SIZE -2; i>0; i--) {
		for( j = 0 ; j<=i; j++) {	
			if( array[j] > array[j+1] ){
				temp =array[j];
				array[j] = array[j+1];
				array[j+1] =temp;			
			}
		}
	}
	// 4、显示排序后数组
	printf("\n"); 
	for(i=0;i< SIZE;i++){
		printf("%8d",array[i]);
	}
}


static void array2(){
	int array[SIZE];// 定义时，下标只能为常量 
	int i,j;
	int max; // 最大值下标位置 
	int temp; // 用于交换数据的中间数据 
	
	srand(time(NULL)); // 通过当前的时间重置随机种子，让每次产生的随机数不同 
	// 1、产生随机数 
	for(i=0;i< SIZE;i++){
		array[i]= rand() % 900 + 100; // 产生100 - 999 之间的随机数 
	}
	// 2、显示数组 
	for(i=0;i< SIZE;i++){
		printf("%8d",array[i]);
	}
	// 3、排序
	for(i = SIZE -1; i>0; i--) {
		max = 0;
		for( j = 1 ; j < i; j++) {	
			if( array[j] > array[max] ){
				max = j;
			}
		}
		if( array[ max] > array[i]){
			temp = array[max];
			array[max] = array[j];
			array[j] = temp;
		}
		
	}
	// 4、显示排序后数组
	printf("\n"); 
	for(i=0;i< SIZE;i++){
		printf("%8d",array[i]);
	}
}

/**
  数组的初始化
   
*/ 
void array3( ) {
	int buffer[100] = {0,1,4}; // 定下标
	int temp[]={0,45,56,56,56,567,76,76,7,67,676,454};
	int i;
	
	printf("size :%d\n\n",sizeof(buffer));
	printf("size :%d\n\n",sizeof(temp)/sizeof(int));
	memset(buffer,10,400); // 以字节为单位进行填充 
	for(i=0;i< 100;i++){
		printf("%8d",buffer[i]);
	}
}


/**
  二维数组
   
*/ 
static void array4( ) {
	int buffer[10][10] = {{0},{1}}; // 定下标
	int i,h;
	
	int temp[][2] = {{0},{1},{44,4,5},{45,65,4},{45,65,4}}; // 定下标
	printf("size :%d\n\n",sizeof(buffer));
	printf("size :%d\n\n",sizeof(temp));
	
	for(i=0;i< 10;i++){
		for(h=0;h< 10;h++){
			printf("%8d",buffer[i][h]);
		}
		printf("\n");
	}

}


void ArrayMain(){
	// array1();
	// array2();
	// array3();
	array4();
}
